from time import sleep

from base.base import Base
from utils.file_utils import FileUtils


class page_login(Base):
    # # 固定当前登录页面在 YAML 配置文件中对应的节点名，实现与测试用例的解耦，方便维护
    # login_page="login_page"
    #
    # # 初始化方法，在创建 page_login 实例时调用
    # def __init__(self, driver, yaml_path):
    #     # 调用父类初始化方法，传入固定节点名
    #     super().__init__(driver, yaml_path, self.login_page)

    # def __init__(self, driver, yaml_path):
    #     # 初始化时不指定固定节点，或默认节点为None
    #     super().__init__(driver, yaml_path, page_node=None)
    #     # 可存储所有节点的定位信息（可选）
    #     self.all_locators = self.get_all_locators()
    #
    # def get_all_locators(self):
    #     """获取YAML中所有节点的定位信息"""
    #     return FileUtils.read_yaml(self.yaml_path)
    #
    # def switch_node(self, node_name):
    #     """切换当前操作的节点"""
    #     if node_name not in self.all_locators:
    #         raise KeyError(f"YAML中不存在节点：{node_name}")
    #     self.page_node = node_name
    #     self.locators = self.all_locators[node_name]  # 更新当前节点的定位信息
    #     logger.info(f"已切换到节点：{node_name}")





    # 登录页特有业务方法（基于父类通用方法实现）
    def login(self, username, password):
        self.switch_node("login_page")
        self.logger.info('输入用户名密码')
        self.send_keys("username_input", username)  # 使用YAML中定义的键名
        self.logger.info('输入用户名密码')
        self.send_keys("password_input", password)
        self.logger.info('点击登录')
        self.click("login_button")
        assert '龙果' in self.text('login_access')
        self.logger.info('登录成功')




